using System;
using System.Collections;
using System.Web.UI;
using System.Web.UI.WebControls;
using Common;
using UsrControls;

namespace MinCultura.Sipa.AdminUI.UsrControls
{
	public class AreasArtisticasFiltradas : UserControl
	{
		protected DropDownBase ddlAreasArtisticas;

		//public delegate void DropDownChangedEventHandler(object sender, DropDownChangedEventArgs e);
		public event EventHandler DropDownChangedEventHandler;


		private void Page_Load(object sender, EventArgs e)
		{
			if (!IsPostBack)
			{						
			}
		}

		/// <summary>
		/// Cargar las Areas desde el objeto de Session ObjAreas		
		/// </summary>
		/// <param name="blTodas">Indica si se adiciona el Item "Todas" al listado</param>
		public void CargarAreas(bool blTodas)
		{		
			if (Session["ObjAreas"]!=null)			
			{						
				Hashtable objHash = (Hashtable)(Session["ObjAreas"]);

				ddlAreasArtisticas.DataTextField = "Key";
				ddlAreasArtisticas.DataValueField = "Value";	
			
				ddlAreasArtisticas.DataSource = objHash;				
				ddlAreasArtisticas.DataBind();
			}
		
			objUsuario usuario = (objUsuario)Session["Usuario"];

			if (blTodas)
			{
				ddlAreasArtisticas.Items.Insert(0, new ListItem(Utilidad.TODAS,string.Empty));
			}

			if (usuario!=null && usuario.EsAdministradorArea && usuario.AreaActual!=0)
			{
				ddlAreasArtisticas.SelectedValueDecimal = usuario.AreaActual;
				ddlAreasArtisticas.Enabled = false;
			}
		}


		/// <summary>
		/// Retorna Lista de codigos de Areas en un Array de tipo Int.
		/// El item "TODAS" no se incluye.
		/// </summary>
		public int[] ListaCodigosAreasArray
		{		
			get
			{
				if (ddlAreasArtisticas.Items.Count!=0)
				{
					int h =0;					
					if (ddlAreasArtisticas.Items[0].Value!=string.Empty)										
						h = ddlAreasArtisticas.Items.Count;					
					else
						h = ddlAreasArtisticas.Items.Count-1;
					int[] intAreas = new int[h];
					if (intAreas.Length >= 1)
					{					
						if (intAreas.Length == 1 )
						{
							if (ddlAreasArtisticas.Items[0].Value == string.Empty)
								intAreas = new int[0];
							else						
								intAreas[0] = Convert.ToInt32(ddlAreasArtisticas.Items[0].Value);
						}
						else
						{						
							ListItem itItem = new ListItem();
							itItem = ddlAreasArtisticas.Items[0];
							int j = 0;
							int z = ddlAreasArtisticas.Items.Count;
							if (itItem.Value=="")		
							{
								j++;			
								z--;
							}
							for (int i = 0;i<z;i++)
							{
								itItem = ddlAreasArtisticas.Items[j];
								intAreas[i] = Convert.ToInt32(itItem.Value);
								j++;
							}
						}					
					}
					return intAreas;
				}
				else
				{
					return new int[0];
				}				
			}	
		}

		/// <summary>
		/// Items en el Listado.
		/// El item "TODAS" no se tiene en cuenta.
		/// </summary>
		public int CantItems
		{
			get
			{
				if (ddlAreasArtisticas.Items.Count!=0)
				{
					if (ddlAreasArtisticas.Items[0].Value == "")
						return ddlAreasArtisticas.Items.Count-1;
					else
						return ddlAreasArtisticas.Items.Count;
				}
				else
					return 0;
			}
		}

		public string SelectedValue
		{
			get{return ddlAreasArtisticas.SelectedValue;}
			set{ddlAreasArtisticas.SelectedValue = value;}
		}

		public bool AutoCallBack
		{
			get{return ddlAreasArtisticas.AutoCallBack;}
			set{ddlAreasArtisticas.AutoCallBack = value;}
		}
		
		public int SelectedValueInt
		{
			get
			{
				if (Utilidad.IsNumeric(SelectedValue))
				{
					return Convert.ToInt32(SelectedValue);
				}
				else
				{
					return 0;
				}
			}
		}

		

		private void ddlAreasArtisticas_SelectedIndexChanged(object sender, EventArgs e)
		{
            //if (null != DropDownChanged)
            //{
            //    DropDownChanged(this, new DropDownChangedEventArgs(SelectedValue));
            //}
            DropDownChangedEventHandler(sender, e);
		}

        

		#region Web Form Designer generated code
		override protected void OnInit(EventArgs e)
		{			
			InitializeComponent();
			base.OnInit(e);
		}
		private void InitializeComponent()
		{
			this.Load += new EventHandler(this.Page_Load);
			this.ddlAreasArtisticas.SelectedIndexChanged += new EventHandler(this.ddlAreasArtisticas_SelectedIndexChanged);

		}
		#endregion
	}
}
